Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > 日本語 - Japanese > ラジオボタンの値をサーバーサイドJavaScriptで取得・設定する
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

ラジオボタンの値をサーバーサイドJavaScriptで取得・設定する

サーバーサイドJavaScriptにより、選択されたラジオボタンの値を取得したり、選択するラジオボタンの値を設定する方法についてまとめます

XPages で最大検索結果数を指定する

XPages で最大検索結果数を指定する方法を紹介します。

XPages のビューコントロールのリンクを別ウインドウで開くようにする

XPages のビューコントロールのリンクをクリックしたときに別ウインドウでページが開くようにする実装方法を紹介します。

XPages コントロールの紹介: 「ページの組み込み」コントロール

コンテナコントロールの1つである「ページの組み込み」コントロールについて紹介します。

XPages コントロールの紹介: 「出力スクリプト」コントロール

「出力スクリプト」コントロールについて紹介します。
Community articleラジオボタンの値をサーバーサイドJavaScriptで取得・設定する
Added by ~Zelda Bubresasteroden | Edited by ~Zelda Bubresasteroden on April 24, 2012 | Version 6
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
サーバーサイドJavaScriptにより、選択されたラジオボタンの値を取得したり、選択するラジオボタンの値を設定する方法についてまとめます
Tags: XPages, RadioButton, RadioButtonGroup, getValue, setValue
ShowTable of Contents
HideTable of Contents
  • 1 ラジオボタングループの場合
    • 1.1 選択値の取得:getValue
    • 1.2 選択値の設定:setValue
  • 2 ラジオボタンの場合
    • 2.1 選択値の取得:getValue
    • 2.2 選択値の設定:setValue
    • 2.3 もっと簡単な方法は?

XPagesでラジオボタンを使用したい場合には、「ラジオボタン」コントロールもしくは「ラジオボタングループ」コントロールがデフォルトで利用可能です。
どちらのコントロールを利用した場合でも、サーバーサイドJavaScriptで選択値を取得・設定することができます。

以下、2つのケースについてそれぞれまとめます。「ラジオボタン」コントロールを使った場合は少し注意が必要です。

ラジオボタングループの場合


例として、以下のような3つの選択肢を持つラジオボタングループを考えます。
ラジオボタングループの例

ソースは以下です。

	<xp:radioGroup id="radioGroup1">

	    <xp:selectItem itemLabel="One" itemValue="1"></xp:selectItem>

	    <xp:selectItem itemLabel="Two" itemValue="2"></xp:selectItem>

	    <xp:selectItem itemLabel="Three" itemValue="3"></xp:selectItem>

	</xp:radioGroup>


選択値の取得:getValue


選択されているラジオボタンの値は、このラジオボタングループのオブジェクトの getValue() メソッドで取得できます。

	getComponent("radioGroup1").getValue();


例えば以下のボタンを追加すると、ボタンを押した際に選択値がコンソールに出力されます。

	<xp:button value="更新" id="button1">

	    <xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true">

	        <xp:this.action><![CDATA[#{javascript:print(getComponent("radioGroup1").getValue());}]]></xp:this.action>

	    </xp:eventHandler>

	</xp:button>


選択値の設定:setValue


選択したいラジオボタンの値を設定する場合には、このラジオボタングループのオブジェクトの setValue(value) メソッドを使用します。

	getComponent("radioGroup1").setValue("2");  // Two が選択

	getComponent("radioGroup1").setValue(null); // 選択なし(リセット)


例えば以下のボタンを追加すると、ボタンを押した際にラジオボタンの選択がリセットされます。

	<xp:button value="リセット" id="button2">

	    <xp:eventHandler event="onclick" submit="true" refreshMode="complete" immediate="false" save="true">

	        <xp:this.action><![CDATA[#{javascript:getComponent("radioGroup1").setValue(null);}]]></xp:this.action>

	    </xp:eventHandler>

	</xp:button>



ラジオボタンの場合


先ほどのラジオボタングループの例と同じサンプルをラジオボタンで以下のように作成します。
ラジオボタングループの例

ソースは以下です。

	<xp:radio text="One" id="radio1" groupName="group1" selectedValue="1"></xp:radio>

	<xp:radio text="Two" id="radio2" groupName="group1" selectedValue="2"></xp:radio>

	<xp:radio text="Three" id="radio3" groupName="group1" selectedValue="3"></xp:radio>


選択値の取得:getValue


ラジオボタングループの場合はオブジェクトが1つだったため、そのgetValueを呼べば値を取得できるというのは非常に直感的でした。

しかし、ラジオボタンコントロールを使用した場合には、選択肢の数だけオブジェクトがあるため、どのオブジェクトの getValue を呼べば値がとれるのかがはっきりしません。
どのオブジェクトの getValue を呼べばいいのでしょうか?

実はこの場合は、どのラジオボタンのオブジェクトの getValue() を呼んでもすべて選択されているラジオボタンの値が取得できます。

	// "Three" を選択している場合

	getComponent("radiop1").getValue(); // "3" が返る

	getComponent("radiop2").getValue(); // "3" が返る

	getComponent("radiop3").getValue(); // "3" が返る


"One"や"Two"のラジオボタンの getValue() を呼んでも "3" が返ってくるのは少し不思議な感じがするかもしれません。
あくまで getValue() は選択値が返ってくることに注意しましょう。

選択値の設定:setValue


逆に選択したいラジオボタンの値を設定する場合には、どのラジオボタンのオブジェクトに setValue(value) すればいいのでしょうか?
先ほどの getValue の際と同様、どのラジオボタンのオブジェクトでも有効なのでしょうか?

実は、setValue の場合は、現在選択されているラジオボタンのオブジェクトに対して setValue を呼ばないと、選択値に反映されません。

	// "Three" を選択している状態から、何も選択していない状態にリセットしたい場合

	getComponent("radiop1").setValue(null); // × 無効(変化なし)

	getComponent("radiop2").setValue(null); // × 無効(変化なし)

	getComponent("radiop3").setValue(null); // ○ 有効


もっと簡単な方法は?


選択されているラジオボタンオブジェクトの setValue を呼ばなければならないのは少し面倒です。
もっと簡単な方法は、データバインドを利用する方法です。

例えば先ほどの例で、すべてのラジオボタンを radio というセッション変数(sessionScope.radio)にバインドしてみます。

	<xp:radio text="One" id="radio1" groupName="group1" selectedValue="1" value="#{sessionScope.radio}></xp:radio>

	<xp:radio text="Two" id="radio2" groupName="group1" selectedValue="2" value="#{sessionScope.radio}></xp:radio>

	<xp:radio text="Three" id="radio3" groupName="group1" selectedValue="3" value="#{sessionScope.radio}></xp:radio>


この場合には、値の取得や設定はどちらも sessionScope.radio という変数に対して行えばよくなります。

	// 選択値の取得

	print(sessionScope.radio);



	// 何も選択していない状態にリセットしたい場合

	sessionScope.radio = null; // どれを選択している状態でもこのコードのみでOK


こうすれば、どのラジオボタンが選択されているかを知る必要がないので、処理が簡単になります。
ラジオボタングループの場合もデータバインドは使用できるので、処理を共通化できるというのも利点の1つです。
 

  • Actions Show Menu▼


expanded Attachments (2)
collapsed Attachments (2)
Edit the article to add or modify attachments.
File TypeSizeFile NameCreated OnDelete file
image/gif 18 KB radioButtonGroup-example.gif 4/24/12, 3:29 PM
image/gif 15 KB radioButton-example.gif 4/24/12, 3:29 PM
expanded Versions (6)
collapsed Versions (6)
Version Comparison     
VersionDateChanged by              Summary of changes
This version (6)Apr 24, 2012, 4:00:24 PM~Zelda Bubresasteroden  
5Apr 24, 2012, 3:58:02 PM~Keiko Brejumiskiakoi  
4Apr 24, 2012, 3:55:25 PM~Keiko Brejumiskiakoi  
3Apr 24, 2012, 3:40:13 PM~Keiko Brejumiskiakoi  
2Apr 24, 2012, 3:33:57 PM~Keiko Brejumiskiakoi  
1Apr 24, 2012, 3:29:52 PM~Keiko Brejumiskiakoi  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility